using System.Data;
using Crosland.Offline.Core;
using Crosland.Framework.Base;

namespace Crosland.Offline.Data.Helper
{

    public class OpcionHelper : DaoHelperBase
    {
        public OpcionHelper() : base(Entidad, ConstansBase.Aplicacion) 
        {
        }

        public Opcion Create(IDataReader dr)
        {
            Opcion entity = new Opcion();

            int iIdOpcion = dr.GetOrdinal(this.IdOpcion);
            if (!dr.IsDBNull(iIdOpcion)) entity.ID = dr.GetInt32(iIdOpcion);

            int iIdPadre = dr.GetOrdinal(this.IdPadre);
            if (!dr.IsDBNull(iIdPadre)) entity.IdPadre = dr.GetInt32(iIdPadre);

            int iIndEstado = dr.GetOrdinal(this.IndEstado);
            if (!dr.IsDBNull(iIndEstado)) entity.IndEstado = dr.GetString(iIndEstado);

            int iDesDescripcion = dr.GetOrdinal(this.DesDescripcion);
            if (!dr.IsDBNull(iDesDescripcion)) entity.DesDescripcion = dr.GetString(iDesDescripcion);

            int iDesNombre = dr.GetOrdinal(this.DesNombre);
            if (!dr.IsDBNull(iDesNombre)) entity.DesNombre = dr.GetString(iDesNombre);

            int iNroOrden = dr.GetOrdinal(this.NroOrden);
            if (!dr.IsDBNull(iNroOrden)) entity.NroOrden = dr.GetInt32(iNroOrden);

            int iNomFormulario = dr.GetOrdinal(this.NomFormulario);
            if (!dr.IsDBNull(iNomFormulario)) entity.NomFormulario = dr.GetString(iNomFormulario);

            int iNroNivel = dr.GetOrdinal(this.NroNivel);
            if (!dr.IsDBNull(iNroNivel)) entity.NroNivel = dr.GetInt32(iNroNivel);

            return entity;
        }


        #region Mapeo de Campos

        public const string Entidad = "Opcion";
        public string IdOpcion = "ID_OPCION";
        public string IdPadre = "ID_PADRE";
        public string IdUsuario = "ID_USUARIO";
        public string IndEstado = "IND_ESTADO";
        public string DesDescripcion = "DES_DESCRIPCION";
        public string DesNombre = "DES_NOMBRE";
        public string NroOrden = "NRO_ORDEN";
        public string NomFormulario = "NOM_FORMULARIO";
        public string NroNivel = "NRO_NIVEL";
        public string IdGrupo = "ID_GRUPO";
        public string IdRol = "ID_ROL";

        public string SpObtenerPorUsuarioOpcion
        {
            get { return "USP_GETPORUSUARIO_OPCION"; }
        }

        public string SpObtenerNroSubNodos
        {
            get { return "USP_OBTENERNRONODOS_OPCION"; }
        }


        #endregion
    }
}
